草庐IT

Java Swing 定时器

全部标签

windows - 内核定时器对象和同步

不知是否有人能简单地告诉我(我知道这不是一个简单的主题)内核定时器对象是如何用于同步对内核中数据结构的访问的?编辑:内核定时器对象是内核调度程序对象的一部分,内核调度程序对象是内核的一组同步对象。我还想知道计时器对象是否是线程在能够继续之前必须等待获取句柄的东西,或者它是线程等待获取句柄的计时器到期时触发的回调?我希望这是有道理的。内核对我来说是一个新主题。 最佳答案 简短回答:计时器对象不用于同步对内核中数据结构的访问。为此,NT内核具有快速互斥、保护互斥、推锁、互斥对象等功能。我不太明白你的问题——你在说什么数据结构?不过,我将

windows - Windows 7之前的计时器合并

在Windows7和Windows8中有定时器合并支持,请参见以下示例:Timercoalescingin.netwindows7有一个SetWaitableTimerEx函数,据称它支持合并here和here。windows8还有一个SetCoalescableTimer函数,根据msdn支持合并。所以很多人都在谈论windows7和windows8中的定时器合并。但后来看来,它可能已经提前实施了。是这样吗?首先,SetThreadpoolTimeravailablesinceVista在vista下提供计时器合并是否正确。或者它只提供接口,实际上只在Windows7之后实现合并?从

windows - 批处理文件,用于执行带计时器的文件夹中的所有 .exe

我搜索过这个网站,现在我知道如何执行文件夹中的所有.exe,这就是我可以做到的(使用批处理文件.bat):for/r"."%%ain(*.exe)dostart"""%%~fa"有没有办法在每个.exe文件之间使用计时器(例如2s)来执行它们? 最佳答案 for/r"."%%ain(*.exe)dostart"""%%~fa"&timeout/t2>nul&分隔命令,>nul将timeout对话定向到位桶,因此它不会被看到。 关于windows-批处理文件,用于执行带计时器的文件夹中的所

c# - Windows窗体中的定时器运行状态

在WindowsForms中,如何判断定时器是在运行还是停止? 最佳答案 检查theEnabledpropertyoftheTimerclass. 关于c#-Windows窗体中的定时器运行状态,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2757436/

c++ - 在 Windows 中创建 C++ 非阻塞计时器

在Linux上,我会使用fork()创建一个子进程,这将是我的倒计时计时器,一旦计时器结束,子进程将向父进程发送一个信号,告诉它计时器已经结束.然后父进程应该相应地处理信号。我不知道如何在Windows上执行此操作。这里有些人建议使用线程,但他们从未编写任何示例代码来说明如何做到这一点。最重要的是计时器是非阻塞的,这意味着它在后台继续倒计时,而程序正在接受用户的输入并正常处理它。你能告诉我怎么做吗?编辑:该应用程序是一个控制台应用程序。请给我看示例代码。谢谢!更新:所以在我阅读了这里的一些建议之后,我在这里搜索了一些答案并找到了这个one这很有帮助。然后我写了下面的代码,它可以工作,但

c - Windows 上的定时器和 sleep

我正在尝试将一些使用nanosleep()和get_clocktime()的linux代码移植到Windows。据我所知,Windows上确实没有那么多性能计时器,并且除了Sleep()之外没有真正的sleep功能。我在Windows上找到了QueryPerformanceCounter和QueryPerformanceFrequency,但我该如何调整它们以使用快速sleep功能。我尝试移植的代码位于这篇StackOverflow帖子中:https://stackoverflow.com/a/13559213/1161270总的来说,我正在尝试将linux代码移植到使用nanosle

windows - 如何在 Windows 上拥有快速且高分辨率的计时器?

我正在编写一个分析器,它在函数进入或退出时查询计时器。因此它有可能每秒被查询数千次。最初我使用了QueryPerformanceCounter,尽管它的分辨率很高,但结果是相当慢。根据WhathappenswhenQueryPerformanceCounteriscalled?问题当我在分析器中使用QPC时,速度也明显下降,但1-2毫秒的数字可能还不错。如果我用GetTickCount替换它,我没有注意到任何减速,但该函数对于分析来说是不准确的。提到的问题提到了亲和掩码。我尝试使用SetProcessAffinityMask(GetCurrentProcess(),1)来绑定(bind

c++ - 如何获取WM_TIMER 的独占定时器ID?

我子类化了一个控件,控件本身有wm_timer。我需要为我的代码创建一个计时器,我怎样才能为我的代码获取一个独有的计时器ID? 最佳答案 不幸的是,你只能得到SetTimer当HWND为空时创建一个新ID。如果您想要一个独特的计时器,您需要使用不带HWND的SetTimer,在这种情况下,计时器消息会直接发布到您的计时器过程。要将计时器消息发送到子类窗口,您只需选择一个您希望唯一的计时器ID。 关于c++-如何获取WM_TIMER的独占定时器ID?,我们在StackOverflow上找到

STM32定时器输入捕获

STM32定时器输入捕获用STM32F429做定时器捕获PWM波形,测出波形的周期、频率以及占空比、正向脉宽。基本原理定时器的输入捕获主要是为了测量输入信号的频率,脉宽,占空比等信息。需要理解stm32定时器的基本结构主要理解这些框起来的是重点,都是本人自己的理解,才疏学浅,万一有理解错的还望指正。至于上半部分的时钟没有太难理解的。下面的通道理解上才比较复杂。首先一个通用定时器有4个输入通道4个通道,这些通道可以空着也可以复用到对应的GPIO上去,/* 可以输出到GPIO的TIM通道: TIM1_CH1,PA8, PE9, TIM1_CH2,PA9, PE11 TIM1_CH3,PA10, P

c - 在 Windows 上安装定时器/时钟 ISR - 单线程环境中的异步调用

我正在改进一些代码,这些代码模拟了x86Windows系统上的上下文切换调度程序。该程序使用一些古老的BorlandC编译器在WindowsXP(编辑:可能不是Windows7)上编译,并且正在移植为MSVC可编译。有一次,代码通过dos.h中的这些不可用函数安装ISR:void(*)()getvect(int)voidsetvect(int,void(*)());具体来说,代码为(循环)定时器中断安装了一个ISR。这些电话是:tick_isr_old=getvect(0x08);setvect(0xF2,tick_isr_old);setvect(0x08,(voidinterrup